package com.my.jli.Service;

import com.my.jli.entity.Homework;
import com.my.jli.entity.HomeworkAndStudent;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @ClassName HomeService
 * @Description
 * @Author MaYu
 * @Date 2022/4/6 19:01
 * @Version 1.0
 **/
public interface HomeworkService {
    /**
     * 获取所有作业信息
     * @return 作业信息列表
     */
    List<Homework> getAll();

    /**
     * 分页获取作业信息
     * @param tid 教师id
     * @param pageable pageable
     * @return 分页后的作业信息
     */
    Page<Homework> getByPage(Integer tid, Pageable pageable);

    Page<Homework> getByPage(Example<Homework> example, Pageable pageable);

    Homework getById(Integer id);

    /**
     * 提交作业
     */
    void submitHomework(HomeworkAndStudent hs);

    /**
     * 获取所有学生作业提交信息
     * @return 学生作业提交信息
     */
    List<HomeworkAndStudent> getAllHS();

    /**
     * 根据两个id获取学生提交作业信息
     * @param hid 作业id
     * @param sid 学生id
     * @return HS
     */
    HomeworkAndStudent getHSByHidAndSid(Integer hid, Integer sid);

    List<HomeworkAndStudent> getHSByHid(Integer hid);

    /**
     * 保存作业信息
     * @param homework 作业信息
     * @return homework
     */
    Homework saveHomework(Homework homework);

    /**
     * 根据id删除作业信息
     * @param hid 作业id
     */
    void deleteHomeworkById(Integer hid);

    /**
     * 获取完成某个作业的人数
     * @param hid 作业id
     * @return 提交人数
     */
    int getSubmitCount(Integer hid);
}
